import Foundation

struct Memory: Identifiable, Codable {
    var id: UUID = UUID()
    var content: String
    var type: MemoryType
    var category: MemoryCategory
    var createdAt: Date
    var updatedAt: Date
    
    enum MemoryType: String, Codable {
        case core
        case archival
    }
    
    enum MemoryCategory: String, Codable {
        case human
        case persona
        case fact
        case skill
    }
}

extension MemoryService {
    func getCoreMemories() -> [Memory] {
        // 从UserDefaults或其他存储中获取核心记忆
        // 这里只是一个简单的实现，返回示例数据
        return [
            Memory(
                content: "用户是一名程序员，喜欢编写Swift代码。",
                type: .core,
                category: .human,
                createdAt: Date(),
                updatedAt: Date()
            ),
            Memory(
                content: "我是一个AI助手，擅长回答编程问题和提供代码建议。",
                type: .core,
                category: .persona,
                createdAt: Date(),
                updatedAt: Date()
            )
        ]
    }
    
    func saveCoreMemory(_ memory: Memory) {
        // 在实际应用中，这里应该保存记忆到持久化存储
        print("保存核心记忆: \(memory.content)")
    }
    
    func saveArchivalMemory(_ memory: Memory) {
        // 在实际应用中，这里应该保存归档记忆到持久化存储
        print("保存归档记忆: \(memory.content)")
    }
    
    func manageLongTermMemory(from messages: [ChatMessage]) {
        // 处理长期记忆的实现
        print("管理长期记忆，消息数量: \(messages.count)")
    }
} 